// stl std::list/std::set/ std::merge
#include <algorithm>
#include <iostream>
#include <list>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
using namespace std;

#define DEBUG
#ifdef DEBUG
#define PF(...) printf(__VA_ARGS__)
#else
#define PF(...)
#endif

int main() {
  int n = 0;
  scanf("%d", &n);
  std::list<int> ltAer;
  std::set<int> stAer;
  while (n--) {
    int tmp = 0;
    scanf("%d", &tmp);
    ltAer.merge({tmp});
    stAer.insert(tmp);
  }

  std::set<int> stSfe;
  std::list<int> ltSfe;
  scanf("%d", &n);
  while (n--) {
    int tmp = 0;
    scanf("%d", &tmp);
    ltSfe.merge({tmp});
    stSfe.insert(tmp);
  }

  for (auto i : ltAer) PF("%d, ", i);
  PF("\n");
  for (auto i : ltSfe) PF("%d, ", i);
  PF("\n");
  ltAer.merge(ltSfe);
  for (auto i : ltAer) PF("%d, ", i);
  PF("\n");

  for (auto i : stAer) PF("%d, ", i);
  PF("\n");
  for (auto i : stSfe) PF("%d, ", i);
  PF("\n");
  stAer.merge(stSfe);
  for (auto i : stAer) PF("%d, ", i);
  PF("\n");
}
